Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit c9813b9b2b37d0133ba9b95c915ef197999adeff


Parents : 6863813
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-08T10:58:23-05:00

fix(NetworkVisualiser, PingPage, RNProbePage): update error handling to use optional chaining for cancellation checks

Changes
Diff

diff --git a/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue b/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
index 0bbc7ea7..a011a00d 100644
--- a/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
+++ b/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
@@ -277,7 +277,7 @@ export default {
});
this.interfaces = response.data.interface_stats?.interfaces ?? [];
} catch (e) {
- if (window.api.isCancel(e)) return;
+ if (window.api.isCancel?.(e)) return;
console.error("Failed to fetch interface stats", e);
}
},
@@ -289,7 +289,7 @@ export default {
this.discoveredInterfaces = response.data?.interfaces ?? [];
this.discoveredActive = response.data?.active ?? [];
} catch (e) {
- if (window.api.isCancel(e)) return;
+ if (window.api.isCancel?.(e)) return;
}
},
async getPathTableBatch(destinationHashes = null) {
@@ -335,7 +335,7 @@ export default {
}
}
} catch (e) {
- if (window.api.isCancel(e)) return;
+ if (window.api.isCancel?.(e)) return;
console.error("Failed to fetch path table batch", e);
}
},
@@ -398,7 +398,7 @@ export default {
});
this.config = response.data.config;
} catch (e) {
- if (window.api.isCancel(e)) return;
+ if (window.api.isCancel?.(e)) return;
console.error("Failed to fetch config", e);
}
},
@@ -412,7 +412,7 @@ export default {
this.conversations[conversation.destination_hash] = conversation;
}
} catch (e) {
- if (window.api.isCancel(e)) return;
+ if (window.api.isCancel?.(e)) return;
console.error("Failed to fetch conversations", e);
}
},

diff --git a/meshchatx/src/frontend/components/ping/PingPage.vue b/meshchatx/src/frontend/components/ping/PingPage.vue
index ec94b8fc..e55f6275 100644
--- a/meshchatx/src/frontend/components/ping/PingPage.vue
+++ b/meshchatx/src/frontend/components/ping/PingPage.vue
@@ -287,7 +287,7 @@ export default {
};
} catch (e) {
// ignore cancelled error
- if (window.api.isCancel(e)) {
+ if (window.api.isCancel?.(e)) {
return;
}

diff --git a/meshchatx/src/frontend/components/rnprobe/RNProbePage.vue b/meshchatx/src/frontend/components/rnprobe/RNProbePage.vue
index 1a99fff8..80251c02 100644
--- a/meshchatx/src/frontend/components/rnprobe/RNProbePage.vue
+++ b/meshchatx/src/frontend/components/rnprobe/RNProbePage.vue
@@ -220,7 +220,7 @@ export default {
failed: response.data.failed || 0,
};
} catch (e) {
- if (!window.api.isCancel(e)) {
+ if (!window.api.isCancel?.(e)) {
console.error(e);
DialogUtils.alert(e.response?.data?.message || this.$t("rnprobe.failed_to_probe"));
}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────